package com.pxst.utils;

import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * @author notch
 * @create 2023-09-11-16:13
 */
public class AltIdUtils {

    /**
     * 封装订单号
     * @Author rj
     * @Date 2023年09月14日 11:26:40
     * @Param prefix 前缀
     * @param created_at 创建时间
     * @param id 订单的id
     * @return
     */
    public static String getAltId(String prefix, Date created_at, Long id) {
        StringBuilder altId = new StringBuilder();
        altId.append(prefix);
        altId.append("-");
        SimpleDateFormat format = new SimpleDateFormat("ddMMyy");
        altId.append(format.format(created_at));
        if (id.toString().length() > 4){
            altId.append(id);
        }else {
            altId.append(addZero(id.toString()));
        }
        return altId.toString();
    }

    /**
     * 将订单号还原成id
     * @param altId 订单号
     * @return
     */
    public static Long restoreId(String altId) {
        String s = altId.split("-")[1];
        Long id = Long.parseLong(s.substring(7));
        return id;
    }

    private static String addZero(String id) {
        StringBuilder builder = new StringBuilder();
        for (int i = 0; i < 4 - id.length(); i++) {
            builder.append(0);
        }
        builder.append(id);
        return builder.toString();
    }
}
